| |
続いて、Cookieから訪問回数を読み取り、表示を行う関数「getCount()」を自作します。この関数で注意すべき点は、Cookieがある場合(2回目以降の訪問)とない場合(初回訪問の場合)の処理を分けることです。これは「start
= cCookie.indexOf(cName);」の結果で判断できます。Cookieがない場合は、"count="の文字列が発見されないため、「start」には-1が代入されます。つまり、「start」が-1以外の場合は2回目以降の訪問、そうでない場合は初回の訪問となるわけです。なお、関数「getCount()」の各行での処理内容は、それぞれ以下のとおりです。
1行目:自作関数「getCount()」の宣言
2行目:変数「cName」に読み込むクッキー名を指定
3行目:変数「cCookie」にクッキーを読み込み、最後に「;」を追加する
4行目:「cCookie」内でクッキー名「cName」が登場する位置を「strat」に代入する
5行目:≪「strat」が-1でなかった場合の処理≫
6行目:「cCookie」内でクッキー名の次に登場する「;」の位置を「end」に代入する
7行目:「cCookie」から訪問回数を抜き出し、変数「count」に数値として代入する
8行目:「count回目の訪問…」と表示する
9行目:「count+1」を引数として関数「setCount()」を呼び出し、次回用の訪問回数をCookieに書き込む
10行目:≪「strat」が-1であった場合の処理≫
11行目:「初めてのご訪問…」と表示する
12行目:「2」を引数として関数「setCount()」を呼び出し、次回に「2回目の訪問…」と表示されるようにCookieに書き込む
13行目:if〜elseの終了
14行目:自作関数「getCount()」の終了 |
<BODY>
:
:
<SCRIPT language="JavaScript">
<!--
function setCount(n){
t = new Date();
t.setTime(t.getTime()+(365*1000*60*60*24));
expt = t.toGMTString();
document.cookie = "count="+n+";expires="+expt;
}
function getCount(){
cName = "count=";
cCookie = document.cookie+";";
start = cCookie.indexOf(cName);
if (start != -1){
end = cCookie.indexOf(";",start);
count = eval(unescape(cCookie.substring(start+cName.length,end)));
document.write(count+"回目の訪問ありがとうござます");
setCount(count+1);
}else{
document.write("初めてのご訪問ありがとうございます");
setCount(2);
}
}
//-->
</SCRIPT>
:
:
</BODY> |
|